PC-9821Stを解剖する

Copyright(C) 2024 まりも

【1】PC-9821St概要

 PC-9821はPentium Proを搭載したサーバ機です。ほぼ同時期のPentiumPro機に Mate-R PC-9821Ra20がありますが、それと比べてPCIスロットの数は3本と多く、タワー型です。ただしXt,Xt13,Xt16と同様、ファイルベイの数が1個だけであり、サーバ然としています。

【2】アップグレードの可能性

 CPUは比較的初期のリビジョンのPentium Pro 200MHz (L2キャッシュ256KB)です。ソケット8にはPL-Pro/II+Celeronというアップグレード製品がありましたが、これがStでは動作しません。これに関して解析されたという情報は無いようです。知られている唯一のアップグレードパスはPentium Pro ODP(333MHz, L2=512KB, with MMX)だけです。

 50pin SCSIのHDDを内蔵できるスペースがあります。なんと出荷時のHDDはIDEドライブだそうです。サーバー用途という感じではありません。いっぽうベイにあるCD-ROMドライブはSCSIだったそうです。メモリは4本のSIMMを1セットで使う2-wayインターリーブ動作です。

【3】全体的な素性

 PC-9821StはPCIスロットに挿すボードを相当に選びます。メモリチェック終了後に赤文字の"PARITY ERROR-BASE MEMORY" が発生してしまうボードが非常に多いです。ビデオカードにすらそういう物があります。

 いっぽうPC-9821X-型番およびSV-98/2用のSV型番の純正品は動作します。オンボードでミレニアムWindowアクセラレータ(PC-9821X-B03相当品)が載っていたらしいです。。

 オンボードのSCSIはAdaptecのAIC-7870チップを使用したもので、基本的にPC-9821X-B02LとBIOSも含めて同等品です。SCSIユーティリティは付属せずAdaptec製品の流用も不可能なため、「非同期転送」に設定できません。このためMOドライブの接続で困ることがありえます。

 フロッピードライブは他のPCIバス世代の機種と同様に、34pinのFD1231Tが用いられています。

 メモリはインターリーブ動作のためメモリの読み出し速度は速いです。登場当時の98で最速であったことは間違いありません。しかし書き込みではさほど速くなく、後続の機種にも劣ります。メモリチェックに長い時間がかかりますが、MATE-Rの他の機種とさほど変わりません。

 640KB OKのあと1MB以上のメモリチェックが始まるまでに異様に長い間があります。またメモリチェック終了後、起動デバイススキャンまでの時間も結構長めです。

 Cバスのスロットは5個もあります。サーバのほか制御用PCとしての拡張性も備えています。

 PCIスロットは3個、デバイス番号8から10が割り当てられています。オンボードのSCSIはデバイス番号3です。450KXではメモリコントローラとPCIバスホストコントローラが固定のデバイス番号20,25になるようです。通常の機種ではデバイス番号0番にPCIホスト兼メモリコントローラがありますが、それがないので、PCI関連ソフトウェアでは見つからないということがあり得ます。

【4】マザーボード

 所有している機体では[G8VDR A C3B] というマザーボードが使われていました。A無しはSt15でしょうか。修正ジャンパ配線は皆無でした。マザーボードは、本体右サイドに当たる「底面パネル」に取り付けられています。このパネルは本体右側から皿ネジで止められています。この底面パネルを外すことで、マザーボードだけをバラック動作させることが容易にできます。Xt,St以外の形式の98にはないメリットです。

 IDEコネクタには空きパターンがあり、現有のフロント側のほうがプライマリで、HDDが接続されます。もう一つのほうにコネクタをつければセカンダリとして使用可能です。

 SCSI 50ピンコネクタは筐体底部のフロント側にあり、ケーブルの取り回しが非常に難しいです。ケースから底面パネルを取り外さずにSCSIケーブルを抜き差しすることが困難なレベルですし、結果的にSCSIバスのケース内配線長が無用に長くなっています。

 Pentium Proと3個もあるチップセット類が基板上の面積を大きく取っており、全体的に窮屈な作りです。

 Pentium ProはVcore電圧が3.1〜3.5V程度で、モデルによって異なります。実機では3.3Vを出力するVRMが載っています。これは12Vではなく5V入力です。チップセット類は電源ユニットからの3.3Vを使用しています。CPUおよびチップセットの周辺には数多くのバイパスコンデンサがあり、ほとんどはタンタルコンデンサです。とても贅沢な作りです。

 CPUのクロックを生成するのは4pin長方形のクリスタルオッシレータです。66MHzとなっています。後述のようにこれを変更すればクロックアップやダウンは可能です。

 メモリはライザ基板にSIMMを設置する仕様です。マザーボードから生えているライザのコネクタはあまり見ないタイプのものです。抜き差しは堅めですので、バラック動作テストでも安心感はあります。しかしコネクタは脆弱そうです。St15ではここがひどく弱くて、無用に長く伸びた細いグラウンドパターンが剥離してショートする事故が起こりえました。St20ではいくらか改善されていますが、何度も抜き差しするのはよくありません。


マザーボード全体図(クリックで拡大)

 マザーボード上にはジャンパポストがいくつかあります。機能がわかったので書いておきます。


■フラッシュROMのVpp端子用
10H13 フラッシュROM用 @側12V B側約5V  Bが定位置です。
■CPU倍率設定用 @側H B側L
4H1  H  L  H  L
4H2  L  L  H  H
    3x  2x 3.5x 2.5x St20では3xが定位置です
CPUの右上側にある4本のピンは、VIDが無い初期のPentium Proを搭載した場合の電圧の調整用です。ピンはどれにもささっていないのが正しい状態です。St20ではVIDがあるCPUが使用されており、このジャンパピンを使用することはありません。


ジャンパピン(クリックで拡大)

【5】性能の追求

 CPUのクロック倍率は3.5倍(クロック233MHz)にできます。しかし発熱は非常に大きくなります。VRMの容量を超える可能性もありますから、実施にあたっては慎重に検討してください。

 既に述べたように、パリティエラー停止を起こしやすい機種です。ストレージがオンボードの50pin SCSIで物足りませんから、UltraやWideのSCSI,UIDE,SATAなどのPCIボードを使いたいところですが、モノを選びます。

■ダメだったもの
53C8xx系SCSIボード    アイオーデータのSC-UPCI系
Advansys3050系SCSIボード メルコIFC-USP,USP-M, RATOCのPCI30

▲パリティエラーを誤魔化せばなんとかなりそうだったもの
UIDEシリーズ       アイオーデータ

●使用できそうだったもの
PC-9821X-B09かAHA-2940AU
PC-9821X-B10かAHA-2940UW
SiImage 3512、3114チップのSATAボード(大熊猫氏BIOS開発の98用BIOSを使用)

 SiImage 3512,3114やUIDEシリーズはさほど性能が発揮されません。BIOS使用のMS-DOS上では読み書き速度は22MB/s程度となります。これを改善するにはBIOSのアドレスをCPUがキャッシュ可(読み出しのみでよい)にすることですが、副作用があり、AdaptecのSCSIではかえって遅くなってしまいますから実施しない方がよいです。PCI write cycleを少しだけ速くすることは可能ですが、ベンチマーク的にはわずかな向上しかありませんでした。

【6】安定性の追求

 パリティエラーが出るようではサーバはおろかパソコンとして使い物になりません。パリティエラーがどういう理由で起こるのかはよく検討する必要があります。エラー表示では-BASE MEMORY と出ていますのでメモリか、またはメモリへの伝送経路の信号状態がよくないと考えられます。しかしメモリを取り替えても改善しません。

 このエラーが出るタイミングの多くは、PCIのデバイススキャンとくにBIOSのスキャン中のようです。したがってPCIバスの信号自体にパリティエラーなどの重大エラーが発生している可能性があります。マスク不可能割り込み(NMI)の処理ルーチンの作りがどうなっているのか不明ですが、発生源であるメモリ、PCIバスの区別をきちんと行っていないかもしれません。

 そこでPCIバスの重大エラーを通知しないという設定をPCIホストブリッジに対して行ってみたところ、システム(DOS)起動後のパリティエラーの発生はほぼなくなりました。しかし、拙作「PCILIST」を実行してPCIホストブリッジの状態を見ると、パリティエラー、データパリティエラー、重大エラーの全てが起こっているとなっており、本当にPCIバスでデータが化けている可能性があることがわかりました。

PCIバスのエラー表示

 一般にPCIのバスエラーはPCIクロックが高いほど起こりやすいと考えられます。CPUおよびPCIバスクロックに同期した66MHzのオッシレータを60MHzに下げてみるとどうなるかを調べてみることにしました。結果はあまり変化無く、動作しない/しにくいPCIボードはクロックを下げても同じでした。ただしもともと動作するデバイス環境でのパリティエラーは発生しなくなりました。

 どうやらSt20では、
・そもそもPCIバスプロトコル上の問題で必ず異常が発生するPCIデバイスが多数ある
・不意にPCIバスまたはメモリ伝送系のエラーを起こしやすい
の両方が区別しがたく起こっているように見えます。この切り分けは非常に厄介です。PC-9821では山猫XaマザーボードでもPCIの伝送エラーは起こりやすいものがありますので、1995年頃のマザーボードではこのような設計上の問題を抱えていそうです。

【7】PCIsetの適用可否

 St20ではPCI-PCIブリッジを使用したボードが正常に動作するかはテストされていません。intel 450KXは複数のPCIバスが想定されるチップセットですので、intel 21152AB のチップを使った物は動作すると考えられますが、上で述べたように不意にエラーが出るという可能性はあります。PCI BIOSはPC-9821全般にあまりまともな設計ではありませんので、PCI-PCIブリッジを介した先のデバイスのリソース割り当てが異常となる可能性があります。それを是正するのが拙作「PCISET」です。

 PCISETにはさまざまなオプション動作が用意されています。しかしSt20では基本的に【しない】側を設定しておくのが無難です。とくにBIOS領域のキャッシュは絶対に【する】側の設定をしないでください。パリティチェックも有効にしてエラーが出ているかを検出可能とすべきです。IRQの再設定ができないという警告が出ますが、再設定しないほうが無難なのでそのまま使ってください。

【8】お約束

 この記事はいくつかの実験を通して考察したことを書いたものですが、結論が正しいという保証はありません。またオーバークロックやPCIのエラー通知を無効にした使い方では、ディスクのデータを破壊する可能性があります。ご自身で試行を行う際には十分注意してください。その結果の責任は一切負いません。

まりも(連絡先メールアドレスはwebページ上で)

【9】改版履歴


年月日   版  内容
2024. 8.15  1.00  新規作成

[トップページに戻る]